﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using BookStore.Solution.Entities;
using BookStore.Solution.BLL;
using BookStore.Solution.Utilities;
namespace BookStore.Solution.Presentation
{
    public partial class frmBillDetail : DevComponents.DotNetBar.OfficeForm
    {
        public BillDetail newdetail { get; set; }
        public string productName { get; set; }
        ProductManager products = new ProductManager();
        List<string> Billdetail = null;
        int dem = 1;
        public frmBillDetail()
        {
            InitializeComponent();
        }
        public frmBillDetail(List<string> billdeiltail)
        {
            InitializeComponent();
            this.Billdetail = billdeiltail;
            productName = billdeiltail[2];
            txtBillID.Text = billdeiltail[0];
        }
        private void btnOK_Click(object sender, EventArgs e)
        {
            if (checkValidation())
            {
                if (txtPrice.Text == "")
                {
                    MessageBox.Show("Bạn chưa chọn sản phẩm nào cho hóa đơn chi tiết", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    newdetail = GetBillDetail();
                    if (Billdetail == null)
                    {
                        newdetail.Status = "Chưa tồn tại";
                    }
                    productName = cbbproduct.Text;
                    Close();
                }
            }
        }
        private bool checkValidation()
        {
            int quan = DataUtil.ToInt(txtQuantity.Text, -1);
            if (quan <= 0)
            {
                MessageBox.Show("Số lượng phải lớn hơn 0", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                lblQuantity.ForeColor = Color.Red;
                return false;
            }
            int coutpd=products.SearchByID(cbbproduct.SelectedValue.ToString()).Quatity;
            if (quan > coutpd)
            {
                MessageBox.Show("Số lượng sản phẩm trong cửa hàng chỉ còn " + coutpd, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                lblQuantity.ForeColor = Color.Red;
                return false;
            }
            return true;
        }
        private BillDetail GetBillDetail()
        {
            BillDetail detail = new BillDetail();
            detail.ProductID = DataUtil.ToString(cbbproduct.SelectedValue);
            detail.Quantity = int.Parse(txtQuantity.Text);
            detail.UnitPrice = long.Parse(txtPrice.Text);
            detail.Status = "Đang tồn tại";
            return detail;
        }

        private void frmBillDetail_Load(object sender, EventArgs e)
        {
            cbbproduct.DataSource = products.GetAll();
            cbbproduct.DisplayMember = "ProductName";
            cbbproduct.ValueMember = "ProductID";
            if (Billdetail != null)
            {
                cbbproduct.Text = Billdetail[0];
                txtQuantity.Text = Billdetail[3];
                txtPrice.Text = Billdetail[4];
                cbbproduct.Text = productName;
            }
        }

        private void cbbproduct_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (dem >= 3)
            {
                txtPrice.Text = products.SearchByID(cbbproduct.SelectedValue.ToString()).UnitPrice.ToString();
            }
            dem++;
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            if (DialogResult.Yes == MessageBox.Show("Bạn muốn hủy các thao tác trên hóa đơn chi tiết", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Information))
            {
                newdetail = null;
                Close();
            }
        }
    }
}